Scan-codes vs Key-codes (posila) While migrating from Allegro to SDL, HanziQ and Jiri replaced the keystroke handling from using key-codes to scan-codes. Before you start jumping with joy, you’ll probably wonder: What is that and why should I care? Well, funny you should ask. You probably won’t care, unless you live outside of USA and/or you use a non-US keyboard layout. In short, key-code is a key identifier dependant on the symbol the key will output when pressed, scan-code is a key identifier based on the physical location of a key. So for example players with French keyboard layout (AZERTY) have to jump to the control options after launching the game for the first time, and remap movement from WASD to ZQSD, in order to be able to move their character without hurting their hand. In 0.17, the controls will map to the correct keys by default, regardless of your layout, and stay mapped to those physical keys even if you for some reason change your keyboard layout while the game is running. The disadvantage is, most of the non-US layouts didn’t end up with completely broken controls, so people kept playing with them and got used to them. So they’ll need to get used to the layout the game was originally designed with, or manually configure controls back to what they are used to. But wait, there is a catch... A few weeks ago we have announced new construction tools, which are by default bound to quite universal shortcuts (Ctrl+C for copy, Ctrl+X for cut and Ctrl+Z for undo). Bilka pointed out that the German keyboard has Z swapped with Y (as does the Czech one, but developers often don't use it) and undo incorrectly defaults to Ctrl+Y instead. To fix these kind of shortcuts we determine the appropriate default scan-codes at start-up, so that undo is always Ctrl+Z, regardless of your layout, but the action will stay bound to those keys if you change keyboard layout at runtime, which is hopefully a reasonable compromise. We might do it for other controls too (it feels natural for M to always be the default key to open the map, and T to open the technology screen), but there is another catch. It is completely reasonable for player to walk north, and Ctrl+click some entities. Remember AZERTY keyboard? Player keeps Z pressed down to walk north and presses Ctrl to start control clicking. Well, I tested this and it doesn’t trigger undo, but still stops player from walking. So it is not completely destructive, rather annoying. I am not sure how or if we’ll solve this, perhaps people with these layouts that create these kind of collisions will need resolve them by changing controls options manually.
Hello, We have another exciting batch of facts for you today.
Hello, You may have noticed we launched Space Age earlier this week :)
Hi everyone, Two months went pass like that and I am back from south India to the winterish Prague. I had a great time full of Yoga, relaxation, new experiences and of course occasional remote work on Factorio over frustratingly bad internet connection. Now my (and whole teams) focus is clear: stabilize the multiplayer, finish the endgame content and prepare the game for Steam release.
This post was written as a joke for April Fools' day. Nothing written here should be taken seriously. No doubt you have heard about NFTs, the latest Blockchain innovation. With some big gaming companies exploring NFTs, where does Factorio stand? We have received many offers. Some of the offers were quite silly, others very tempting. Since we have many Blockchain enthusiasts on the team, we decided to explore the subject ourselves. After consulting with some industry-leading experts on Discord, this is what we came up with: Non-fungible blueprints One of the many subjects of debate within the team is the blueprint library. Allowing players to easily share big blueprints (blue science, nuclear reactor setup, etc.) ruins the fun of figuring out how to build those things yourself. One of the best things about the blueprint library is that it contains your unique blueprints, which are almost like unique pieces of art. So it only makes sense to make them truly unique, using the Blockchain, NFT, and Smart Contracts technologies. What this means is that every blueprint in the blueprint library will now be stored on the Blockchain, and they will be truly unique across all of the blueprint libraries of all players. Just like NFTs, they can be traded on the Blockchain, also making them a great speculative asset. In essence your blueprint library will become your personal wallet, containing only the unique blueprints that you own. Unlike most NFTs, blueprints are created (minted) by the players, making it a truly decentralized system, controlled by the smart contracts we created. In order to guarantee uniqueness we will use AI and Machine Deep Learning to analyze any new blueprint before it is minted, this way you won't be able to just move one power pole and mint a copy. Once again, making blueprints truly unique. Our own Play-to-earn cryptocurrency Limiting the creation (minting) of new blueprints using just the AI will not be enough. To ensure the Blockchain is not flooded with useless blueprints, we will also create a cryptocurrency called Factorio Blueprint Token ⚙️. You will need to pay 1,000 of them to mint 1 new unique blueprint. Factorio Blueprint Tokens ⚙️ are earned from Space Science using a variable conversion rate we will control. Since you can now earn crypto by just playing the game, the game basically pays for itself. Factorio Blueprint Tokens ⚙️ come with all the advantages of a proof-of-work cryptocurrency, and all the fun of playing Factorio and optimizing factories for maximum UPS. Some say that Factorio offers so much value for money, that they paid more for the electricity bill than they paid for the game, so we are happy to take it to the next level. We will host an Initial Coin Offering (ICO) for Factorio Blueprint Token ⚙️, so make sure you invest as much as you can and HODL it, in the hopes that someone will tweet about it making the price go to the moon 🚀🌘. Click here to take part in the ICO.
Hello, this post is going to be more technical than usual, yet it might still be interesting to know the background of the process for some people.
Hello, a large part of the team is attending GDS , if you are in Prague and interested in Games, you are welcome to come as well.
Hello there. As you probably know, we released the experimental version of 0.16 this week. As usual after such a big release, we are working as best as we can to fix the bugs to make the game reasonably playable as soon as possible. Our current goal is to have semi-stable version before Christmas.
Trains in blueprints Building trains again and again might be a daunting task. Especially when you start making a lot of mining outposts, artillery/supply trains with filtered cargo wagon slots etc. So I decided that we should extend blueprints to work with trains as well. The first condition was, that trains are only selected when you explicitly allow it in the checkbox, so they don't get in your way when building rail setups. Checking the button allows the train that was there to be put into the blueprint (similar to the way tiles work). For the sake of simplicity, we decided that once there is any rail in the blueprint, the train in it will be always buildable (as a ghost obviously), even if there are not rails to support the train at the moment. The train ghost will simply stay there and won't be buildable until rails are placed under it in a way so it can be placed. If I remove the rails from the blueprint, I get a second type of rail blueprint. In this case, all the parts of need to have rails to support it, this is mainly needed as without rails, there is no rail grid forced, so we should make sure, the train ghost won't be created in some wrong position. The small touch here is, that the blueprint also contains the schedule. With little-bit of improvisation, I can optimize the mine building a lot in the late game. I create a blueprint of mine train station. The stop will be called " Mine X". Both of the trains in the blueprint will have the " Mine X" -> " Smelting" schedule setup. Once I build the blueprint, I just rename the " Mine X" to whatever I want (" Mine 12" for example), and the train schedules are updated as well, so I'm almost ready to go. The last tweak I'm considering is to allow blueprints to contain the fuel insertion info similar to how they contain the module insertion info for assembling machines now.